home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 60 / 60.xpi / chrome / webdeveloper.jar / content / webdeveloper / common / xpath.js < prev   
Encoding:
JavaScript  |  2009-06-30  |  1.4 KB  |  51 lines

  1. // Evaluates an XPath against a given node
  2. function webdeveloper_evaluateXPath(node, xPath)
  3. {
  4.     var namespaceResolver = null;
  5.     var namespaceURI      = webdeveloper_getNamespaceURI(node);
  6.     var result            = null;
  7.     var resultList        = new Array();
  8.     var results           = null;
  9.     
  10.     // If the node has a namespace URI
  11.     if(namespaceURI)
  12.     {
  13.         namespaceResolver = new WebDeveloperNamespaceResolver(namespaceURI);
  14.         xPath             = xPath.replace(/\/\//gi, "//webdeveloper:");
  15.     }
  16.     
  17.     results = new XPathEvaluator().evaluate(xPath, node, namespaceResolver, XPathResult.ANY_TYPE, null);
  18.  
  19.     // Loop through the results
  20.     while((result = results.iterateNext()) != null)
  21.     {
  22.         resultList.push(result);
  23.     }
  24.  
  25.     return resultList;
  26. }
  27.  
  28. // Returns the namespace URI for a node 
  29. function webdeveloper_getNamespaceURI(node)
  30. {
  31.     // If the node has an owner document
  32.     if(node.ownerDocument)
  33.     {
  34.         return node.ownerDocument.documentElement.namespaceURI;
  35.     }
  36.  
  37.     return node.documentElement.namespaceURI;
  38. }
  39.  
  40. // Constructs a namespace resolver object
  41. function WebDeveloperNamespaceResolver(namespaceURI)
  42. {
  43.     this.namespaceURI = namespaceURI;
  44. }
  45.  
  46. // Looks up the namespace URI
  47. WebDeveloperNamespaceResolver.prototype.lookupNamespaceURI = function(prefix)
  48. {
  49.     return this.namespaceURI;
  50. }
  51.